Two-dimensional digital image processing comprises transforming the digital content of an input image and producing output digital image data to produce an output image. In display systems, in such transformations, the image data suffer intrinsic and situational distortions. Intrinsic distortions are those characteristics of the display system that do not change under different circumstances. Examples of these distortions are tangential and radial lens distortions, the most common case of which are pincushion and barrel distortions.
On the other hand, situational distortions depend on particular circumstances. Common examples of these distortions are horizontal and vertical keystone distortions. Some distortions could be considered intrinsic or situational depending on the particular display characteristics. For instance, geometrical distortions in a rear-projection television are fixed while they change dramatically in a projector, depending of geometry of the screen, e.g. flat or curved, angle of projection, etc.
Electronic image warping is commonly used to compensate for geometric and optical distortions. A discussion of image warping can be found in George Wolberg's “Digital Image Warping”, IEEE Computer Society Press, 1988. Many electronic image distortion or transformation algorithms are designed with the primary goal to simplify the hardware implementation. This objective often restricts the complexity and flexibility of the spatial transformation.
U.S. Pat. No. 4,472,732 to Bennett et. al., discloses a method well suited for hardware implementations of real-time image processing systems and decomposes a 2D map into a series of 1D maps, which require only 1D filtering or re-sampling. U.S. Pat. No. 5,175,808 to Sayre and U.S. Pat. No. 5,204,944 to Wolberg et al., disclose methods based on a pixel-by-pixel description. Both approaches are restrictive as not all warps can be separated into 1D warps and a pixel-by-pixel description is not suited for varying distortions, in addition to being very expensive to implement.
Other algorithms for spatial transformations are limited to certain mapping types, such as rotations, linear scaling, affine, and perspective transforms as described in U.S. Pat. No. 4,835,532 to Fant, U.S. Pat. No. 4,975,976 to Kimata et al., U.S. Pat. No. 5,808,623 to Hamburg, and U.S. Pat. No. 6,097,855 to Levien.
In the case of varying distortion parameters, different warp maps are needed for any given situation. One way to handle dynamic warp map assignment is to generate a warp map each time the situation changes. Obviously this method is not efficient, and in the case of real time video applications, it is not practical.
A more efficient way of dynamic warp assignment is to generate a set of warp maps offline and store these maps in a memory. When needed, one of these warp maps is called and used for distortion compensation according to a particular set of distortion parameters. This technique requires substantial memory to store all the warp maps. Accordingly, this method becomes impractical in the case of too many parameters and configurations. Furthermore, the choice of a warp map is limited to a given set of pre-determined distortion parameters, which could greatly compromise the quality of the output image.
It is therefore necessary to devise a dynamic warp generation scheme which is efficient from a hardware implementation point of view, is flexible in terms of the types of distortions allowable, and is able to render high quality output images.